package com.hmdp.utils;

/**
 * Redis常量类，定义了所有与Redis相关的键和超时时间。
 */
public class RedisConstants {
    /**
     * 登录验证码的键前缀
     */
    public static final String LOGIN_CODE_KEY = "login:code:";

    /**
     * 登录验证码的过期时间（单位：分钟）
     */
    public static final Long LOGIN_CODE_TTL = 2L;

    /**
     * 登录用户信息的键前缀
     */
    public static final String LOGIN_USER_KEY = "login:token:";

    /**
     * 登录用户信息的过期时间（单位：秒）
     */
    public static final Long LOGIN_USER_TTL = 36000L;

    /**
     * 空值缓存的过期时间（单位：分钟），用于防止缓存击穿
     */
    public static final Long CACHE_NULL_TTL = 2L;

    /**
     * 商铺缓存的过期时间（单位：分钟）
     */
    public static final Long CACHE_SHOP_TTL = 30L;

    /**
     * 商铺缓存的键前缀
     */
    public static final String CACHE_SHOP_KEY = "cache:shop:";

    /**
     * 商铺锁的键前缀
     */
    public static final String LOCK_SHOP_KEY = "lock:shop:";

    /**
     * 商铺锁的过期时间（单位：秒）
     */
    public static final Long LOCK_SHOP_TTL = 10L;

    /**
     * 秒杀库存的键前缀
     */
    public static final String SECKILL_STOCK_KEY = "seckill:stock:";

    /**
     * 博客点赞的键前缀
     */
    public static final String BLOG_LIKED_KEY = "blog:liked:";

    /**
     * 动态推送的键前缀
     */
    public static final String FEED_KEY = "feed:";

    /**
     * 商铺地理位置的键前缀
     */
    public static final String SHOP_GEO_KEY = "shop:geo:";

    /**
     * 用户签到的键前缀
     */
    public static final String USER_SIGN_KEY = "sign:";
}
